package io.bhex.sdk.account.bean;

import com.google.gson.annotations.SerializedName;

import java.util.List;

import io.bhex.baselib.network.response.BaseResponse;

public class UserLevelInfoResponse extends BaseResponse {
    /**
     * userLevelInfo : {"levelConfigIds":[],"withdrawUpperLimitInBtc":"2.5","cancelOtc24hWithdrawLimit":false,"spotBuyMakerDiscount":"1","spotBuyTakerDiscount":"1","spotSellMakerDiscount":"1","spotSellTakerDiscount":"1","optionBuyMakerDiscount":"1","optionBuyTakerDiscount":"1","optionSellMakerDiscount":"1","optionSellTakerDiscount":"1","contractBuyMakerDiscount":"1","contractBuyTakerDiscount":"1","contractSellMakerDiscount":"1","contractSellTakerDiscount":"1","levelData":{},"monthTradeAmountInBtc":{"1":"0","2":"0","3":"0"}}
     * levelConfigs : [{"configId":"45","levelIcon":"https://static.bhex.us/static.bhex.us/bhop/image/JIx5ddKGmx_lKc7yDbvPSLAocnmASW7KHVUSuEbB-uA.png","levelName":"VIP1","conditions":[[{"key":"kycLevel","value":2},{"key":"bindMobile"}]],"withdrawUpperLimitInBtc":"25","cancelOtc24hWithdrawLimit":false,"spotBuyMakerDiscount":"0.9","spotBuyTakerDiscount":"0.9","spotSellMakerDiscount":"0.9","spotSellTakerDiscount":"0.9","optionBuyMakerDiscount":"0.9","optionBuyTakerDiscount":"0.9","optionSellMakerDiscount":"0.9","optionSellTakerDiscount":"0.9","contractBuyMakerDiscount":"0.9","contractBuyTakerDiscount":"0.9","contractSellMakerDiscount":"0.9","contractSellTakerDiscount":"0.9"}]
     */

    private UserLevelInfoBean userLevelInfo;
    private List<LevelConfigsBean> levelConfigs;

    public UserLevelInfoBean getUserLevelInfo() {
        return userLevelInfo;
    }

    public void setUserLevelInfo(UserLevelInfoBean userLevelInfo) {
        this.userLevelInfo = userLevelInfo;
    }

    public List<LevelConfigsBean> getLevelConfigs() {
        return levelConfigs;
    }

    public void setLevelConfigs(List<LevelConfigsBean> levelConfigs) {
        this.levelConfigs = levelConfigs;
    }

    public static class UserLevelInfoBean {
        /**
         * levelConfigIds : []
         * withdrawUpperLimitInBtc : 2.5
         * cancelOtc24hWithdrawLimit : false
         * spotBuyMakerDiscount : 1
         * spotBuyTakerDiscount : 1
         * spotSellMakerDiscount : 1
         * spotSellTakerDiscount : 1
         * optionBuyMakerDiscount : 1
         * optionBuyTakerDiscount : 1
         * optionSellMakerDiscount : 1
         * optionSellTakerDiscount : 1
         * contractBuyMakerDiscount : 1
         * contractBuyTakerDiscount : 1
         * contractSellMakerDiscount : 1
         * contractSellTakerDiscount : 1
         * levelData : {}
         * monthTradeAmountInBtc : {"1":"0","2":"0","3":"0"}
         */

        private String withdrawUpperLimitInBtc;
        private boolean cancelOtc24hWithdrawLimit;
        private String spotBuyMakerDiscount;
        private String spotBuyTakerDiscount;
        private String spotSellMakerDiscount;
        private String spotSellTakerDiscount;
        private String optionBuyMakerDiscount;
        private String optionBuyTakerDiscount;
        private String optionSellMakerDiscount;
        private String optionSellTakerDiscount;
        private String contractBuyMakerDiscount;
        private String contractBuyTakerDiscount;
        private String contractSellMakerDiscount;
        private String contractSellTakerDiscount;
        private LevelDataBean levelData;
        private MonthTradeAmountInBtcBean monthTradeAmountInBtc;
        private List<String> levelConfigIds;

        public String getWithdrawUpperLimitInBtc() {
            return withdrawUpperLimitInBtc;
        }

        public void setWithdrawUpperLimitInBtc(String withdrawUpperLimitInBtc) {
            this.withdrawUpperLimitInBtc = withdrawUpperLimitInBtc;
        }

        public boolean isCancelOtc24hWithdrawLimit() {
            return cancelOtc24hWithdrawLimit;
        }

        public void setCancelOtc24hWithdrawLimit(boolean cancelOtc24hWithdrawLimit) {
            this.cancelOtc24hWithdrawLimit = cancelOtc24hWithdrawLimit;
        }

        public String getSpotBuyMakerDiscount() {
            return spotBuyMakerDiscount;
        }

        public void setSpotBuyMakerDiscount(String spotBuyMakerDiscount) {
            this.spotBuyMakerDiscount = spotBuyMakerDiscount;
        }

        public String getSpotBuyTakerDiscount() {
            return spotBuyTakerDiscount;
        }

        public void setSpotBuyTakerDiscount(String spotBuyTakerDiscount) {
            this.spotBuyTakerDiscount = spotBuyTakerDiscount;
        }

        public String getSpotSellMakerDiscount() {
            return spotSellMakerDiscount;
        }

        public void setSpotSellMakerDiscount(String spotSellMakerDiscount) {
            this.spotSellMakerDiscount = spotSellMakerDiscount;
        }

        public String getSpotSellTakerDiscount() {
            return spotSellTakerDiscount;
        }

        public void setSpotSellTakerDiscount(String spotSellTakerDiscount) {
            this.spotSellTakerDiscount = spotSellTakerDiscount;
        }

        public String getOptionBuyMakerDiscount() {
            return optionBuyMakerDiscount;
        }

        public void setOptionBuyMakerDiscount(String optionBuyMakerDiscount) {
            this.optionBuyMakerDiscount = optionBuyMakerDiscount;
        }

        public String getOptionBuyTakerDiscount() {
            return optionBuyTakerDiscount;
        }

        public void setOptionBuyTakerDiscount(String optionBuyTakerDiscount) {
            this.optionBuyTakerDiscount = optionBuyTakerDiscount;
        }

        public String getOptionSellMakerDiscount() {
            return optionSellMakerDiscount;
        }

        public void setOptionSellMakerDiscount(String optionSellMakerDiscount) {
            this.optionSellMakerDiscount = optionSellMakerDiscount;
        }

        public String getOptionSellTakerDiscount() {
            return optionSellTakerDiscount;
        }

        public void setOptionSellTakerDiscount(String optionSellTakerDiscount) {
            this.optionSellTakerDiscount = optionSellTakerDiscount;
        }

        public String getContractBuyMakerDiscount() {
            return contractBuyMakerDiscount;
        }

        public void setContractBuyMakerDiscount(String contractBuyMakerDiscount) {
            this.contractBuyMakerDiscount = contractBuyMakerDiscount;
        }

        public String getContractBuyTakerDiscount() {
            return contractBuyTakerDiscount;
        }

        public void setContractBuyTakerDiscount(String contractBuyTakerDiscount) {
            this.contractBuyTakerDiscount = contractBuyTakerDiscount;
        }

        public String getContractSellMakerDiscount() {
            return contractSellMakerDiscount;
        }

        public void setContractSellMakerDiscount(String contractSellMakerDiscount) {
            this.contractSellMakerDiscount = contractSellMakerDiscount;
        }

        public String getContractSellTakerDiscount() {
            return contractSellTakerDiscount;
        }

        public void setContractSellTakerDiscount(String contractSellTakerDiscount) {
            this.contractSellTakerDiscount = contractSellTakerDiscount;
        }

        public LevelDataBean getLevelData() {
            return levelData;
        }

        public void setLevelData(LevelDataBean levelData) {
            this.levelData = levelData;
        }

        public MonthTradeAmountInBtcBean getMonthTradeAmountInBtc() {
            return monthTradeAmountInBtc;
        }

        public void setMonthTradeAmountInBtc(MonthTradeAmountInBtcBean monthTradeAmountInBtc) {
            this.monthTradeAmountInBtc = monthTradeAmountInBtc;
        }

        public List<String> getLevelConfigIds() {
            return levelConfigIds;
        }

        public void setLevelConfigIds(List<String> levelConfigIds) {
            this.levelConfigIds = levelConfigIds;
        }

        public static class LevelDataBean {
        }

        public static class MonthTradeAmountInBtcBean {
            /**
             * 1 : 0
             * 2 : 0
             * 3 : 0
             */

            @SerializedName("1")
            private String _$1;
            @SerializedName("2")
            private String _$2;
            @SerializedName("3")
            private String _$3;

            public String get_$1() {
                return _$1;
            }

            public void set_$1(String _$1) {
                this._$1 = _$1;
            }

            public String get_$2() {
                return _$2;
            }

            public void set_$2(String _$2) {
                this._$2 = _$2;
            }

            public String get_$3() {
                return _$3;
            }

            public void set_$3(String _$3) {
                this._$3 = _$3;
            }
        }
    }

    public static class LevelConfigsBean {
        /**
         * configId : 45
         * levelIcon : https://static.bhex.us/static.bhex.us/bhop/image/JIx5ddKGmx_lKc7yDbvPSLAocnmASW7KHVUSuEbB-uA.png
         * levelName : VIP1
         * conditions : [[{"key":"kycLevel","value":2},{"key":"bindMobile"}]]
         * withdrawUpperLimitInBtc : 25
         * cancelOtc24hWithdrawLimit : false
         * spotBuyMakerDiscount : 0.9
         * spotBuyTakerDiscount : 0.9
         * spotSellMakerDiscount : 0.9
         * spotSellTakerDiscount : 0.9
         * optionBuyMakerDiscount : 0.9
         * optionBuyTakerDiscount : 0.9
         * optionSellMakerDiscount : 0.9
         * optionSellTakerDiscount : 0.9
         * contractBuyMakerDiscount : 0.9
         * contractBuyTakerDiscount : 0.9
         * contractSellMakerDiscount : 0.9
         * contractSellTakerDiscount : 0.9
         */

        private String configId;
        private String levelIcon;
        private String levelName;
        private String withdrawUpperLimitInBtc;
        private boolean cancelOtc24hWithdrawLimit;
        private String spotBuyMakerDiscount;
        private String spotBuyTakerDiscount;
        private String spotSellMakerDiscount;
        private String spotSellTakerDiscount;
        private String optionBuyMakerDiscount;
        private String optionBuyTakerDiscount;
        private String optionSellMakerDiscount;
        private String optionSellTakerDiscount;
        private String contractBuyMakerDiscount;
        private String contractBuyTakerDiscount;
        private String contractSellMakerDiscount;
        private String contractSellTakerDiscount;
        private List<List<ConditionsBean>> conditions;

        public String getConfigId() {
            return configId;
        }

        public void setConfigId(String configId) {
            this.configId = configId;
        }

        public String getLevelIcon() {
            return levelIcon;
        }

        public void setLevelIcon(String levelIcon) {
            this.levelIcon = levelIcon;
        }

        public String getLevelName() {
            return levelName;
        }

        public void setLevelName(String levelName) {
            this.levelName = levelName;
        }

        public String getWithdrawUpperLimitInBtc() {
            return withdrawUpperLimitInBtc;
        }

        public void setWithdrawUpperLimitInBtc(String withdrawUpperLimitInBtc) {
            this.withdrawUpperLimitInBtc = withdrawUpperLimitInBtc;
        }

        public boolean isCancelOtc24hWithdrawLimit() {
            return cancelOtc24hWithdrawLimit;
        }

        public void setCancelOtc24hWithdrawLimit(boolean cancelOtc24hWithdrawLimit) {
            this.cancelOtc24hWithdrawLimit = cancelOtc24hWithdrawLimit;
        }

        public String getSpotBuyMakerDiscount() {
            return spotBuyMakerDiscount;
        }

        public void setSpotBuyMakerDiscount(String spotBuyMakerDiscount) {
            this.spotBuyMakerDiscount = spotBuyMakerDiscount;
        }

        public String getSpotBuyTakerDiscount() {
            return spotBuyTakerDiscount;
        }

        public void setSpotBuyTakerDiscount(String spotBuyTakerDiscount) {
            this.spotBuyTakerDiscount = spotBuyTakerDiscount;
        }

        public String getSpotSellMakerDiscount() {
            return spotSellMakerDiscount;
        }

        public void setSpotSellMakerDiscount(String spotSellMakerDiscount) {
            this.spotSellMakerDiscount = spotSellMakerDiscount;
        }

        public String getSpotSellTakerDiscount() {
            return spotSellTakerDiscount;
        }

        public void setSpotSellTakerDiscount(String spotSellTakerDiscount) {
            this.spotSellTakerDiscount = spotSellTakerDiscount;
        }

        public String getOptionBuyMakerDiscount() {
            return optionBuyMakerDiscount;
        }

        public void setOptionBuyMakerDiscount(String optionBuyMakerDiscount) {
            this.optionBuyMakerDiscount = optionBuyMakerDiscount;
        }

        public String getOptionBuyTakerDiscount() {
            return optionBuyTakerDiscount;
        }

        public void setOptionBuyTakerDiscount(String optionBuyTakerDiscount) {
            this.optionBuyTakerDiscount = optionBuyTakerDiscount;
        }

        public String getOptionSellMakerDiscount() {
            return optionSellMakerDiscount;
        }

        public void setOptionSellMakerDiscount(String optionSellMakerDiscount) {
            this.optionSellMakerDiscount = optionSellMakerDiscount;
        }

        public String getOptionSellTakerDiscount() {
            return optionSellTakerDiscount;
        }

        public void setOptionSellTakerDiscount(String optionSellTakerDiscount) {
            this.optionSellTakerDiscount = optionSellTakerDiscount;
        }

        public String getContractBuyMakerDiscount() {
            return contractBuyMakerDiscount;
        }

        public void setContractBuyMakerDiscount(String contractBuyMakerDiscount) {
            this.contractBuyMakerDiscount = contractBuyMakerDiscount;
        }

        public String getContractBuyTakerDiscount() {
            return contractBuyTakerDiscount;
        }

        public void setContractBuyTakerDiscount(String contractBuyTakerDiscount) {
            this.contractBuyTakerDiscount = contractBuyTakerDiscount;
        }

        public String getContractSellMakerDiscount() {
            return contractSellMakerDiscount;
        }

        public void setContractSellMakerDiscount(String contractSellMakerDiscount) {
            this.contractSellMakerDiscount = contractSellMakerDiscount;
        }

        public String getContractSellTakerDiscount() {
            return contractSellTakerDiscount;
        }

        public void setContractSellTakerDiscount(String contractSellTakerDiscount) {
            this.contractSellTakerDiscount = contractSellTakerDiscount;
        }

        public List<List<ConditionsBean>> getConditions() {
            return conditions;
        }

        public void setConditions(List<List<ConditionsBean>> conditions) {
            this.conditions = conditions;
        }

        public static class ConditionsBean {
            /**
             * key : kycLevel
             * value : 2
             */

            private String key;
            private int value;

            public String getKey() {
                return key;
            }

            public void setKey(String key) {
                this.key = key;
            }

            public int getValue() {
                return value;
            }

            public void setValue(int value) {
                this.value = value;
            }
        }
    }
}
